home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Games / WHDLoad / Src / imager-examples / ik+.islave.asm < prev    next >
Encoding:
Assembly Source File  |  2001-07-14  |  4.4 KB  |  213 lines

  1. ;*---------------------------------------------------------------------------
  2. ;  :Program.    ik+.islave.asm
  3. ;  :Contents.    Imager for IK+
  4. ;  :Author.    Wepl
  5. ;  :Version.    $Id: ik+.islave.asm 1.1 2001/07/14 10:15:22 jah Exp jah $
  6. ;  :History.    13.07.01 created
  7. ;  :Requires.    -
  8. ;  :Copyright.    Public Domain
  9. ;  :Language.    68000 Assembler
  10. ;  :Translator.    Barfly V2.9
  11. ;  :To Do.
  12. ;---------------------------------------------------------------------------*
  13. ;
  14. ;    Disk format:
  15. ;    original release:
  16. ;    Disk 1:        0    standard
  17. ;            2-120*2    $1800 bytes sync=8944
  18. ;            122*2    unformatted
  19. ;            1*2    unformatted
  20. ;    HitSquad rerelease:
  21. ;    Disk 1:        0-159    standard
  22. ;
  23. ;---------------------------------------------------------------------------*
  24.  
  25.     INCDIR    Includes:
  26.     INCLUDE    RawDic.i
  27.  
  28.     IFD BARFLY
  29.     OUTPUT    "Develop:Installs/IK+ Install/IK+.ISlave"
  30.     BOPT    O+            ;enable optimizing
  31.     BOPT    OG+            ;enable optimizing
  32.     BOPT    ODd-            ;disable mul optimizing
  33.     BOPT    ODe-            ;disable mul optimizing
  34.     ENDC
  35.  
  36. ;============================================================================
  37.  
  38.     SECTION a,CODE
  39.  
  40.         SLAVE_HEADER
  41.         dc.b    1        ; Slave version
  42.         dc.b    0        ; Slave flags
  43.     ;    dc.b    SFLG_DEBUG    ; Slave flags
  44.         dc.l    _disk1        ; Pointer to the first disk structure
  45.         dc.l    _text        ; Pointer to the text displayed in the imager window
  46.  
  47.         dc.b    "$VER: "
  48. _text        dc.b    "IK+ Imager",10
  49.         dc.b    "Done by Wepl, Version 1.0 "
  50.     DOSCMD    "WDate >T:date"
  51.     INCBIN    "T:date"
  52.         dc.b    ".",0
  53. _image        dc.b    "IK+.Image",0
  54.     EVEN
  55.  
  56. ;============================================================================
  57.  
  58.     ;original release
  59. _disk1        dc.l    0        ; Pointer to next disk structure
  60.         dc.w    1        ; Disk structure version
  61.         dc.w    DFLG_SINGLESIDE    ; Disk flags
  62.         dc.l    _tl1        ; List of tracks which contain data
  63.         dc.l    0        ; UNUSED, ALWAYS SET TO 0!
  64.         dc.l    _fl1        ; List of files to be saved
  65.         dc.l    _crc1        ; Table of certain tracks with CRC values
  66.         dc.l    _disk12        ; Alternative disk structure, if CRC failed
  67.         dc.l    0        ; Called before a disk is read
  68.         dc.l    0        ; Called after a disk has been read
  69.  
  70. _tl1        TLENTRY    0,0,$1600,SYNC_STD,DMFM_STD
  71.         TLENTRY    1,60,$1800,$8944,_decode1
  72.         TLEND
  73.  
  74. _fl1        FLENTRY    _image,$1600,$58800
  75.         FLEND
  76.  
  77. _crc1        CRCENTRY 0,$bc15
  78.         CRCEND
  79.  
  80. _decode1
  81.  
  82.     ;init table
  83.         LEA    (_buf_200),A2
  84.         tst.w    (a2)
  85.         bne    .initend
  86.         MOVEQ    #0,D7
  87. .B4        MOVEQ    #0,D6
  88.         MOVE.B    D7,D6
  89.         LSL.W    #8,D6
  90.         MOVEQ    #7,D0
  91. .BC        LSL.W    #1,D6
  92.         BCC.B    .C4
  93.         EORI.W    #$1021,D6
  94. .C4        DBRA    D0,.BC
  95.         MOVE.B    D6,$0100(A2)
  96.         LSR.W    #8,D6
  97.         MOVE.B    D6,(A2)+
  98.         ADDQ.B    #1,D7
  99.         BNE.B    .B4
  100. .initend
  101.         move.b    #$17,d6
  102.         move.b    #$fd,d7
  103.  
  104.         MOVE.W    #$17FF,D1
  105.         MOVEA.L    A1,A4
  106.         BSR    .26A
  107.  
  108.         MOVEQ    #1,D1
  109.         subq.l    #4,a7
  110.         move.l    a7,a4
  111.         BSR    .26A
  112.         OR.B    D6,D7
  113.         addq.l    #4,a7
  114.         bne    .error
  115.         moveq    #IERR_OK,d0
  116.         rts
  117.  
  118. .error        moveq    #IERR_CHECKSUM,d0
  119.         rts
  120.  
  121. .26A        LEA    .35C(PC),A2
  122.         LEA    (_buf_200),A3
  123.         MOVE.L    A3,D4
  124.         MOVEQ    #$007F,D3
  125.         MOVEQ    #0,D0
  126.  
  127. .27A        move.w    (a0)+,d0
  128.         ror.l    #8,d0
  129.         AND.W    D3,D0
  130.         MOVEQ    #0,D2
  131.         MOVE.B    (A2,D0.W),D2
  132.         rol.l    #8,d0
  133.         AND.W    D3,D0
  134.         LSL.B    #4,D2
  135.         OR.B    (A2,D0.W),D2
  136.         MOVE.B    D2,(A4)+
  137.         MOVEA.L    D4,A3
  138.         EOR.B    D6,D2
  139.         ADDA.W    D2,A3
  140.         MOVE.B    (A3),D6
  141.         EOR.B    D7,D6
  142.         MOVE.B    $0100(A3),D7
  143.         DBRA    D1,.27A
  144.         RTS    
  145.  
  146. .35C        DC.L    $10001
  147.         DC.L    $2030203
  148.         DC.L    $10001
  149.         DC.L    $2030203
  150.         DC.L    $4050405
  151.         DC.L    $6070607
  152.         DC.L    $4050405
  153.         DC.L    $6070607
  154.         DC.L    $10001
  155.         DC.L    $2030203
  156.         DC.L    $10001
  157.         DC.L    $2030203
  158.         DC.L    $4050405
  159.         DC.L    $6070607
  160.         DC.L    $4050405
  161.         DC.L    $6070607
  162.         DC.L    $8090809
  163.         DC.L    $A0B0A0B
  164.         DC.L    $8090809
  165.         DC.L    $A0B0A0B
  166.         DC.L    $C0D0C0D
  167.         DC.L    $E0F0E0F
  168.         DC.L    $C0D0C0D
  169.         DC.L    $E0F0E0F
  170.         DC.L    $8090809
  171.         DC.L    $A0B0A0B
  172.         DC.L    $8090809
  173.         DC.L    $A0B0A0B
  174.         DC.L    $C0D0C0D
  175.         DC.L    $E0F0E0F
  176.         DC.L    $C0D0C0D
  177.         DC.L    $E0F0E0F
  178.  
  179. ;============================================================================
  180.  
  181.     ;HitSquad rerelease
  182. _disk12        dc.l    0        ; Pointer to next disk structure
  183.         dc.w    1        ; Disk structure version
  184.         dc.w    0        ; Disk flags
  185.         dc.l    _tl12        ; List of tracks which contain data
  186.         dc.l    0        ; UNUSED, ALWAYS SET TO 0!
  187.         dc.l    _fl12        ; List of files to be saved
  188.         dc.l    _crc12        ; Table of certain tracks with CRC values
  189.         dc.l    0        ; Alternative disk structure, if CRC failed
  190.         dc.l    0        ; Called before a disk is read
  191.         dc.l    0        ; Called after a disk has been read
  192.  
  193. _tl12        TLENTRY    0,0,$1600,SYNC_STD,DMFM_STD
  194.         TLENTRY    9,$49,$1600,SYNC_STD,DMFM_STD
  195.         TLEND
  196.  
  197. _fl12        FLENTRY    _image,$1800,$58800
  198.         FLEND
  199.  
  200. _crc12        CRCENTRY 0,$56af
  201.         CRCEND
  202.  
  203. ;======================================================================
  204.  
  205.     SECTION    b,BSS
  206.  
  207. _buf_200    ds.b    $200
  208.  
  209. ;============================================================================
  210.  
  211.     END
  212.  
  213.